实战-Docker方式安装Jenkins-20220417-测试成功
Day2-实战:Docker方式安装Jenkins-2022.4.17(测试成功)
目录
[toc]
实验环境
win10笔记本
1台虚机 centos7.9 vmworkstation
jenkins/jenkins:2.332.2-centos7-jdk8
docker 20.10.11
实验软件
链接:https://pan.baidu.com/s/1d4Y_oq_nysDR7Psl8syKZw?pwd=l6lo 提取码:l6lo 2022.4.16-实战2:docker方式安装jenkins-2022.4.16(测试成功)
前置条件
- docker环境已安装(本次版本:20.10.11)
1、Jenkins master节点安装
🍀 课件内容
🍀 自己配置过程如下:
0、安装jdk环境
⚠️ 我们测试环境,是在一台虚机上跑了一个jenkins容器。但后面添加一个jenkins agent时,是将这个虚机作为其agent使用,因此这个虚机也要安装java环境的!!!
不管你是jenkins master节点,还是agent节点,都是需要jdk环境的!
(1)下载jdk软件
[root@devops ~]#wget https://mirrors.tuna.tsinghua.edu.cn/AdoptOpenJDK/8/jdk/x64/linux/OpenJDK8U-jdk_x64_linux_hotspot_8u322b06.tar.gz --no-check-certificate
(2)配置jdk环境
[root@devops ~]#tar zxf OpenJDK8U-jdk_x64_linux_hotspot_8u322b06.tar.gz -C /usr/local/
[root@devops ~]#cd /usr/local/jdk8u322-b06/
[root@devops jdk8u322-b06]#pwd
/usr/local/jdk8u322-b06
[root@devops jdk8u322-b06]#vim /etc/profile
export JAVA_HOME=/usr/local/jdk8u322-b06
export PATH=$JAVA_HOME/bin:$PATH
[root@devops jdk8u322-b06]#source /etc/profile
(3)验证
[root@devops jdk8u322-b06]#java -version
openjdk version "1.8.0_322"
OpenJDK Runtime Environment (Temurin)(build 1.8.0_322-b06)
OpenJDK 64-Bit Server VM (Temurin)(build 25.322-b06, mixed mode)
1、docker拉取jenkins镜像并启动容器
🍀 下载jenkins镜像
去dockerhub官方网站去下载jenkins镜像
在dockerhub里搜索jenkins/jenkins
,点击tag
,搜索jdk8
,然后选择2.332.2-centos7-jdk8
即可:
docker pull jenkins/jenkins:2.332.2-centos7-jdk8
🍀 完整安装过程如下:
#先在本地宿主机创建/data/cicd/jenkins目录并赋予权限
mkdir -p /data/cicd/jenkins
chmod +x /data/cicd/jenkins
(1)拉取镜像
[root@devops harbor]#docker pull jenkins/jenkins:2.332.2-centos7-jdk8
(2)创建jenkins工作目录
[root@devops harbor]#mkdir -p /data/cicd/jenkins
[root@devops harbor]#chmod 777 -R /data/cicd/jenkins
(3)启动jenkins
docker run -itd --name jenkins --restart=always \
-p 8080:8080 \
-p 50000:50000 \
--privileged=true \
-e JAVA_OPTS="-Dorg.apache.commons.jelly.tags.fmt.timeZone='Asia/Shanghai" \
-v /data/cicd/jenkins:/var/jenkins_home jenkins/jenkins:2.332.2-centos7-jdk8
#说明:
8080 Jenkins web端访问端口
50000 Jenkins与Agent建立连接所需要的端口
JAVA_OPTS环境变量为修改时间配置,否则可能jenkins的时间显示有问题!
(4)验证
#查看jenkins容器运行状态
[root@devops ~]#docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
NAMES
dc6fa067248a jenkins/jenkins:2.332.2-centos7-jdk8 "/sbin/tini -- /usr/…" 48 seconds ago Up 47 seconds 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 0.0.0.0:50000->50000/tcp, :::50000->50000/tcp jenkins
#查看jenkins容器log
[root@devops ~]#docker logs jenkins
2、访问web界面并输入密码
🍀 可通过如下2种方式来获取密码:
(1)查看docker里的日志文件
[root@devops ~]#docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
cb910c09e8964c459ba6dcc7eff4f4cd
(2)查看jenkins容器日志
[root@devops ~]#docker logs jenkins
Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:
cb910c09e8964c459ba6dcc7eff4f4cd
This may also be found at: /var/jenkins_home/secrets/initialAdminPassword
输入密码后,这边的加载一会儿,耐心等一会儿:
加载完成后,出现如下界面:
3、自定义安装插件
点击选择插件来安装
:
先点击全部
,再点击无
,我们来自定义安装一些插件:
我们装一个jenkins中文社区的插件
及本地化插件
就好了:(后面我们课程用到哪些插件再去安装就可以了)选好后,点击安装
:
插件安装完成后,出现如下界面:
4、创建一个管理员用户
账户:admin 密码:admin ,输入完成后,点击保存并完成
:
点击保存并完成
:
点击开始使用jenkins
:
这里就进入到了jenkins的主界面:
5、配置插件源
🍀 jenkins官方中文社区源当时测试在这个jenkins版本下用不了!
按老师提供的这个方法,貌似这个源地址对这个版本的jenkins是失效了:。。。(老师也是没测试出来。。。,最后直接更换清华源了!)
🍀 因此这里进行更换清华源:
输入清华源链接地址
:https://mirrors.tuna.tsinghua.edu.cn/
点击updates
:
看下自己当前jenkins版本:Jenkins 2.332.2)
这里没有Jenkins 2.332.2
,用相近的版本也行:
点击update-center.json
,然后复制其链接地址即可:
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/dynamic-stable-2.332.1/update-center.json
🍀 得到清清华源地址后,我们再次按上面方式进行配置
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/dynamic-stable-2.332.1/update-center.json
验证,点击立即获取
:
可以看到,这个源地址是可以用的:
以上,jenkins master节点就配置成功了,接下来配置下jenkins agent节点!
2、Jenkins agent节点安装
agent就是真正去执行任务的节点。
1、新建节点,并填写参数配置
🍀 课件内容
🍀 自己具体配置过程
点击系统设置
-节点管理
:
点击新建节点
:
填写节点名称
,Type选择固定节点
,点击Create
:
配置执行器数量
,远程工作目录
,标签
内容,其余不变,填写完成后,点击保存:
⚠️
Number of executors
你可以这样理解,我在jenkins上运行一个job,它就会占用一个执行器。它所运行作业的数量,作业的并发数。 所以你在调并发的时候,如果出现队列在排队的情况,那可能是因为这里的执行器数量设置不够!
另外:如果这里配置了自定义工作目录的话
,那么这里的值就会替代上面我们指定的远程工作目录
!
2、获取agent启动程序并运行agent
🍀 课件内容
🍀 自己配置过程:
在首页点击刚才新建的节点build01
:
这里agent有2种方式可以连接到jenkins master,我们使用第二种方式:
右键复制agent.jar
包,在我们的虚机里将其下载下来:
创建agent目录并下载agent.jar
包:
[root@devops ~]#mkdir -p /data/cicd/jenkins/jenkinsagent
[root@devops ~]#cd /data/cicd/jenkins/jenkinsagent
[root@devops jenkinsagent]#wget http://172.29.9.101:8080/jnlpJars/agent.jar
--2022-04-14 18:40:15-- http://172.29.9.101:8080/jnlpJars/agent.jar
Connecting to 172.29.9.101:8080... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1524115 (1.5M) [application/java-archive]
Saving to: ‘agent.jar’
100%[=====================================================================================================================================>] 1,524,115 --.-K/s in 0.07s
2022-04-14 18:40:15 (22.2 MB/s) - ‘agent.jar’ saved [1524115/1524115]
[root@devops jenkinsagent]#ll -h agent.jar
-rw-r--r-- 1 root root 1.5M Apr 14 16:09 agent.jar
编写启动脚本:
[root@devops jenkinsagent]#pwd
/data/cicd/jenkins/jenkinsagent
[root@devops jenkinsagent]#vim start.sh #将刚才网页出现的第二种方式的代码拷贝进去
#!/bin/bash
echo a6e5abcbbab18dd68f6a76cbab162507201d465bc64aefdc4f7240befe8b311b > secret-file
java -jar agent.jar -jnlpUrl http://172.29.9.101:8080/computer/build01/jenkins-agent.jnlp -secret @secret-file -workDir "/opt/jenkins"
启动脚本并查看:
[root@devops jdk8u322-b06]#cd /data/cicd/jenkins/jenkinsagent/
[root@devops jenkinsagent]#ls
agent.jar secret-file start.sh
[root@devops jenkinsagent]#sh start.sh
此时刷新下web页面,我么可以看到bulid01 agent节点
状态正常了:
🍀 但是,现在有个问题,当我们把这个脚本退出后,这个agent程序就退出了:
此时,该怎么办呢?可以在启动脚本里修改下配置,使其脚本在后台运行:😘
#改进脚本
[root@devops jenkinsagent]#pwd
/data/cicd/jenkins/jenkinsagent
[root@devops jenkinsagent]#vim start.sh
#!/bin/bash
echo a6e5abcbbab18dd68f6a76cbab162507201d465bc64aefdc4f7240befe8b311b > secret-file
nohup java -jar agent.jar -jnlpUrl http://172.29.9.101:8080/computer/build01/jenkins-agent.jnlp -secret @secret-file -workDir "/opt/jenkins" >/dev/null &
#我们再次启动脚本,然后刷新网页观察现象
[root@devops jenkinsagent]#sh start.sh
[root@devops jenkinsagent]#nohup: redirecting stderr to stdout
[root@devops jenkinsagent]#
[root@devops jenkinsagent]#ps -aux|grep java
1000 83669 1.6 24.0 3016260 447312 pts/0 Sl+ 16:41 2:26 java -Duser.home=/var/jenkins_home -Djenkins.model.Jenkins.slaveAgentPort=50000 -jar /usr/share/jenkins/jenkins.war
root 94013 14.8 6.4 3036264 120800 pts/2 Sl 19:04 0:08 java -jar agent.jar -jnlpUrl http://172.29.9.101:8080/computer/build01/jenkins-agent.jnlp -secret @secret-file -workDir /opt/jenkins
root 94183 0.0 0.0 112708 972 pts/2 S+ 19:05 0:00 grep --color=auto java
- 设置脚本开机启动:
[root@devops ~]#chmod +x /etc/rc.d/rc.local
[root@devops ~]#chmod +x /data/cicd/jenkins/jenkinsagent/start.sh
[root@devops ~]#vim /etc/rc.d/rc.local
3、自定义agent通信端口
⚠️ 注意:这里默认使用50000端口即可!尽量使用指定端口,如果使用随机端口的话,后续区域网络申请放行网络权限时,不好做!
🍀 配置地方如下(保持默认即可):系统管理
-安全/全局安全设置
:
至此,jenkins master节点和agent节点已全部安装成功!😘
关于我
我的博客主旨:
- 排版美观,语言精炼;
- 文档即手册,步骤明细,拒绝埋坑,提供源码;
- 本人实战文档都是亲测成功的,各位小伙伴在实际操作过程中如有什么疑问,可随时联系本人帮您解决问题,让我们一起进步!
🍀 微信二维码 x2675263825 (舍得), qq:2675263825。
🍀 微信公众号 《云原生架构师实战》
🍀 语雀
https://www.yuque.com/xyy-onlyone
🍀 csdn https://blog.csdn.net/weixin_39246554?spm=1010.2135.3001.5421
🍀 知乎 https://www.zhihu.com/people/foryouone
最后
好了,关于本次就到这里了,感谢大家阅读,最后祝大家生活快乐,每天都过的有意义哦,我们下期见!